class BinarySearch{
    public static void main(){
    System.out.println(new BS().Start(20));
    }
}
// This class contains an array of integers and
// methods to initialize, print and search the array
// using Binary Search

class BS{
    int[] number ;
    int size ;

    // Invoke methods to initialize, print and search
    // for elements on the array
    public int Start(int sz){
    int aux01 ;
    int aux02 ;
    aux01 = this.Init(sz);
    aux02 = this.Print();
    if (this.Search(8)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(19)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(20)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(21)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(37)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(38)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(39)) System.out.println(1) ;
    else System.out.println(0) ;
    if (this.Search(50)) System.out.println(1) ;
    else System.out.println(0) ;

    return 999 ;
    }


    // Search for a specific value (num) using
    // binary search
    public boolean Search(int num){
    boolean bs01 ;
    int right ;
    int left ;
    boolean var_cont ;
    int medium ;
    int aux01 ;
    int nt ;

    aux01 = 0 ;
    bs01 = false ;
    right = number.length ;
    right = right - 1 ;
    left = 0 ;
    var_cont = true ;
    while (var_cont){
        medium = left + right ;
        medium = this.Div(medium);
        aux01 = number[medium] ;
        if (num < aux01) right = medium - 1 ;
        else left = medium + 1 ;
        if (this.Compare(aux01,num)) var_cont = false ;
        else var_cont = true ;
        if (right < left) var_cont = false ;
        else nt = 0 ;
    }

    if (this.Compare(aux01,num)) bs01 = true ;
    else bs01 = false ;
    return bs01 ;
    }

    // This method computes and returns the
    // integer division of a number (num) by 2
    public int Div(int num){
    int count01 ;
    int count02 ;
    int aux03 ;

    count01 = 0 ;
    count02 = 0 ;
    aux03 = num - 1 ;
    while (count02 < aux03) {
        count01 = count01 + 1 ;
        count02 = count02 + 2 ;
    }
    return count01 ;
    }


    // This method compares two integers and
    // returns true if they are equal and false
    // otherwise
    public boolean Compare(int num1 , int num2){
    boolean retval ;
    int aux02 ;

    retval = false ;
    aux02 = num2 + 1 ;
    if (num1 < num2) retval = false ;
    else if (!(num1 < aux02)) retval = false ;
    else retval = true ;
    return retval ;
    }

    // Print the integer array
    public int Print(){
    int j ;

    j = 1 ;
    while (j < (size)) {
        System.out.println(number[j]);
        j = j + 1 ;
    }
    System.out.println(99999);
    return 0 ;
    }


    // Initialize the integer array
    public int Init(int sz){
    int j ;
    int k ;
    int aux02 ;
    int aux01 ;

    size = sz ;
    number = new int[sz] ;

    j = 1 ;
    k = size + 1 ;
    while (j < (size)) {
        aux01 = 2 * j ;
        aux02 = k - 3 ;
        number[j] = aux01 + aux02 ;
        j = j + 1 ;
        k = k - 1 ;
    }
    return 0 ;
    }

}
